Activation of memory core circuits in an integrated circuit

ABSTRACT

In an approach to activating at least one memory core circuit of a plurality of memory core circuits in an integrated circuit, one or more computer processors activate a clock signal of a currently selected memory core circuit. The one or more computer processors activate the clock signal of a previously selected memory core circuit to allow the previously selected memory core circuit to be set to a deselected operating mode. The one or more computer processors forward an output bit generated by a memory core circuit selected from a plurality of memory core circuits to a multiplexed bit line.

BACKGROUND OF THE INVENTION

The present invention relates generally to the field of data processingsystems, and in particular, to integrated circuits comprising memorycore circuits.

An integrated circuit is a set of electronic circuits on one small flatpiece of semiconductor material which can be made of materials likesilicon. Integrating large numbers of tiny transistors into a small chipresults in circuits that are orders of magnitude smaller, cheaper, andfaster than those constructed on discrete electronic components. Thereliability of integrated circuits and building block approach tocircuit designs cement integrated circuits as the standard in place ofdesigns using discrete transistors. Integrated circuits are used invirtually all electronic equipment and are now inextricable parts of thestructure of modern societies.

SUMMARY

Embodiments of the present invention disclose an apparatus, a method,and a computer program product for activating at least one memory corecircuit of a plurality of memory core circuits in an integrated circuit.The one or more computer processors activate a clock signal of acurrently selected memory core circuit. The one or more computerprocessors activate the clock signal of a previously selected memorycore circuit to allow the previously selected memory core circuit to beset to a deselected operating mode. The one or more computer processorsforward an output bit generated by a memory core circuit selected from aplurality of memory core circuits to a multiplexed bit line.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 depicts a data flow of an integrated circuit comprising twomemory core circuits and a logic circuitry for activating at least oneof the memory core circuits according to an embodiment of the invention.

FIG. 2 depicts a state machine for activating at least one of the memorycore circuits according to an embodiment of the invention.

FIG. 3 depicts a state machine for activating at least one of the memorycore circuits according to an embodiment of the invention.

FIG. 4 depicts an exemplary embodiment of a data processing systemcomprising at least one integrated circuit for executing a methodaccording to the invention.

DETAILED DESCRIPTION

Present day integrated circuits utilize synchronized dynamic randomaccess memory. Synchronized dynamic random access memory (SDRAM) devicesare utilized in various computing devices and are accessed by varioustypes of processors. An SDRAM controller generates signals forcontrolling read and write operations in response to commands andaddresses from a master, for example a master processor. When a memorycell of an SDRAM is accessed, a row (or a word line) on which the memorycell is placed activates. One function of the SDRAM controller is todetermine whether a row to be accessed is presently activated. If therow is not activated, the SDRAM controller activates the row prior to aread or write access involving the row. The other function of the SDRAMcontroller is to inactivate a previously activated row when the SDRAMcontroller grants access to a new row.

The SDRAM performs a precharge operation following read/write operationsin order to maintain the status of stored data. When the prechargeoperation is performed, a formerly activated row inactivates and columns(or bit lines) set to a precharge voltage (e.g., VCC/2). This prechargeoperation typically requires several clock cycles to complete, such astwo or three clock cycles. When rows in the same bank of the SDRAM arecontinuously accessed, the precharge operation is performed even thoughit is not required.

Static random access memory (SRAM) is a type of volatile digital memorythat retains data written to it as long as power is applied to the SRAM.One type of SRAM commonly used in high performance computationalcircuits is referred to as a “ripple domino” SRAM.

At present, the cells are arranged into groups of cells of typically inthe order of 16 to 64 cells per group in domino SRAM designs. Each cellin a group connects to a local bit line pair and the local bit line pairfor each group of cells couples to a global bit line pair. Rather thanusing a sense amplifier to detect a differential voltage when reading acell, the local bit lines are discharged by the cell in a read operationin a ripple domino read SRAM scheme. The state of the cell may then bedetermined when the domino read SRAM scheme detects a charge. Thedynamic data is usually captured in a dynamic to static conversioncircuit such as a set-reset-latch. Before such a read operation theset-reset-latch has to be reset and the bit lines have to be in aprecharge state.

As used herein, memory core circuits are parts of memory arraystructures, particularly two-dimensional array structures, moreparticularly monolithic array circuits comprising caches, statusregister, and the like. A memory core may comprise a part of an addressspace and thus part of SRAM cells, e.g., memory cores interconnected vialocal and global bit lines.

Memory core circuits in integrated circuits may comprise a plurality ofmemory banks with independent global bit lines and global bit linelatches. For example, memory core circuits may use exclusive NAND gates(XNANDs) as set/reset latches. Address space, such as decoded mostsignificant bits (MSBs), may be used to select the requested activememory core circuit. Data from the addressed bit line may be selectivelypropagated to the array data out. A significant part of the powerconsumption of a read operation of the memory core circuits is requiredto reset/restore global bit lines and the global bit line latches.

Advantageously, the present invention avoids slowing down the data pathand distributing global, timing critical signals. Further, the presentinvention saves power to reset/restore all bit lines during a readoperation. As a result, the present invention lowers the load on clocksignals involved in memory core circuit selection while fulfillingtiming requirements. Additionally, the present invention addresses powerconsumption and wire routability tradeoffs.

The present invention details a state machine associated with a historyfunction which is evaluated to control bit line capture latches. Thestate machine keeps track of the usage of the memory core circuits.Depending on the evaluation of the history function, a subset of thecapture latches (e.g. XNANDs) may be precharged or reset. The statemachine does not use any additional signals, such as clock signals, forcontrol. Unlike a multiplexer, the state machine avoids data bus slowdown. Further, the state machine reduces the wiring on the integratedcircuit. Compared to a solution using a discrete or distributedmultiplexer at the output to connect the desired memory core circuit tothe output, the present invention avoids the distribution of timingcritical select signals and additional logic in the data path.

Compared to solutions involving simple OR-logic connecting the globalbit line latch outputs as the data outputs while deactivating theclocking and resetting/fencing the capture latch of the memory corecircuit, the present invention reduces power consumption by avoidingusing the OR logic in order to ensure the proper function of the OR (orAND) gate the unaddressed memory cores to propagate a logical zero (orlogical one) state. In the current state of the art, all memorycore/bank global bit lines are always restored to the precharge levelwhich consumes additional power to speed up the critical path though.The present invention avoids the aforementioned situation.

The present invention evaluates a state machine associated with aschematic featuring a history function to control the local or globalbit line capture latch reset and/or the local or global bit linerestore. The integrated circuit proposed by the present inventioncomprises additional latches to store the global bit line address of thelast active read cycle. The integrated circuit only resets the memorycore circuit read in the current cycle and the memory core circuit readin the last cycle. The integrated circuit does not clock memory corecircuits that do not need to be clocked which allows the memory corecircuits that do not need to be locked to remain on the reset level. Theintegrated circuit may foresee additional logic to reset all global bitline latches at the power on phase or during an exception state removal,such as an array initialization by a built-in self-test component, atleast once. The integrated circuit does not control using any additionalsignals, such as clock signals. The integrated circuit may be used forstatic memory arrays as well as for dynamic memory arrays.

FIG. 1 depicts a data flow of an integrated circuit 10 comprising twomemory core circuits 12, 14 and a logic circuitry 40 for activating atleast one of the memory core circuits 12, 14 according to an embodimentof the invention.

Integrated circuit 10 comprises memory core circuit 12 and memory corecircuit 14, with outputs 24 and 26 which output at least one output biteach. Memory core circuit 12 and memory core circuit 14 are in adeselected operating mode, wherein the at least one output bit onoutputs 24 and 26 are held on an inactive level, respectively.Integrated circuit 10 further comprises a logic circuitry 40 thatforwards the output bit generated by memory core circuit 12 and memorycore circuit 14 selected from memory core circuit 12 and memory corecircuit 14 to multiplexed bit line 42. Logic circuitry 40 comprises aclock gating circuit being configured for activating clock signals 54and 56 of one or a selected memory core circuit 12 and memory corecircuit 14 and for activating clock signals 54 and 56 of a previouslyselected memory core circuit 12 and memory core circuit 14, viacontrolling a gating of clock 44 and clock 46, in order to allow thepreviously selected memory core circuit 12 and memory core circuit 14 tobe set to the deselected operating mode if memory core circuit 12 andmemory core circuit 14 are currently selected for reading and memorycore circuit 12 and memory core circuit 14 were previously selected.

The logic circuitry 40 may reside on different components and maycomprise a storage element 22 configured for storing informationregarding whether or not a specific memory core circuit 12 and memorycore circuit 14 were previously selected. Further, a clock gatingcircuit may keep clock signal 54 and clock signal 56 of memory corecircuit 12 and memory core circuit 14 activated if the informationstored in storage element 22 indicates that memory core circuit 12 andmemory core circuit 14 activated previously. A clock gating circuit maydrive clock gates 32 and clock gate 34, which may be implemented as alogic gate, such as an AND gate driving the clock signal 54 and clocksignal 56 and/or implementing a precharge clock and/or XNAND/set/resetlatch clock. The polarity of the driving signal depends on the type ofclock gate 32 and clock gate 34.

The inactive level of the output bit in the embodiment shown correspondsto a logical value of zero (“logical zero”). Logic levels, such aslogical zero and logical one, corresponding to the finite number ofstates that a digital signal can inhabit. Therefore, logic circuitry 40comprises OR gate 28 for combining the output bits of memory corecircuits 12 and memory core circuit 14 to a signal on the multiplexedbit line 42 for propagating a logical zero if inactive output bitsexist. Thus, OR gate 28 may switch multiplexed bit line 42.

In an alternative embodiment, if the inactive level also corresponds toa logical zero, the logic circuitry 40 may comprise a NOR gate forpropagating a logical value of one in the case of inactive output bits.

In a further alternative embodiment, if the inactive level correspondsto a logical value of one (“logical one”), the logic circuitry 40 maycomprise an AND gate for combining the output bits of the plurality ofmemory core circuit 12 and memory core circuit 14 to a signal onmultiplexed bit line 42 for propagating a logical one in the case of theoutput bits being inactive.

In yet another alternative embodiment, if the inactive level alsocorresponds to a logical one, the logic circuitry 40 may comprise a NANDgate for propagating a logical zero in the case of inactive output bits.

At least one of memory core circuit 12 and memory core circuit 14 maycomprise a memory bank and logic circuitry 40 may select a memory bankbased on at least one address bit 48.

The logic circuitry may be configured to precharge or reset output 24and output 26 of the plurality of memory core circuit 12 and memory corecircuit 14 upon a power-on phase or an exception state removal or aninitialization of one of memory core circuit 12 and memory core circuit14. Further, the memory core circuit 12 and memory core circuit 14 mayprecharge or reset output line 24 and output line 26 when performing abuilt-in self-test. In the embodiment shown in FIG. 1, force clockenable (FCE) signal 68 executes the built-in self-test.

The storage element 22 may be a latch. First latch 20 delivers the inputfor storage element 22 which receives most significant bit (MSB) 48 of amemory core cell address and an input and a first address latch signalL1 74 to an AND gate 39 and a second address latch signal L2 66 tostorage element 22 as an output.

In an embodiment of the invention, integrated circuit 10 furthercomprises programmable local clock buffers (PLCB) 16 and PLCB 18 forpropagating clock signal 44 and clock signal 46, enabled by enable (ENA)signal 62 and ENA signal 64 and force clock enable (FCE) signal 58 andFCE signal 60.

Integrated circuit 10 further comprises OR gate 36 and OR gate 38 thatdeliver additional inputs for clock gate 32 and clock gate 34. Forceclock enable L1 signal 68 provide OR gate 36 and OR gate 38. Storageelement 22 outputs signal 70 to NAND gate 39 and to OR gate 38.

Integrated circuit 10 depicted in FIG. 1 implements a method foractivating at least one memory core circuit 12 and memory core circuit14 in integrated circuit 10. In the present invention, clock signal 44of a currently selected configuration of memory core circuit 12activates. Clock signal 46 of the previously selected memory corecircuit 14 activates in order to allow a previously selectedconfiguration of memory core circuit 14 to set to a deselected operatingmode. Finally, logic circuitry 40 forwards the output bit generated bythe memory core circuit 12 and memory core circuit 14 to the multiplexedbit line 42.

Storage element 22 stores information about whether or not memory corecircuit 12 and/or memory core circuit 12 were previously selected. Clocksignal 54 and clock signal 56 of memory core circuit 14 remainsactivated if the information stored in the storage element 22 indicatesthat memory core circuit 14 and memory core circuit 12 were previouslyactivated. For this purpose, logic circuitry 40 performs the function ofdetermining the state of one or more memory core circuits.

Addresses of memory core cells selected for a read process input tofirst address latch 20 via MSB 48. Output 66 and output 74 of addresslatch 20 control the signal flow through second address latch 22 as thestorage element, NAND gate 39, and OR gate 36 and OR gate 38 in order toenable a clock gating process of AND gate 32 and AND gate 34 foractivating one of memory core circuit 12 and memory core circuit 14. Viathe signal 68, a force clock enable may disable all related clock gates,such as clock gate 32 and clock gate 34, so that memory core circuit 12and memory core circuit 14 clock independent of the content of latch 20and latch 22.

FCE signal 68 and FCE signal 60 may switch from logical zero to logicalone for one or more cycles during a power-on phase or a reset phase sothat the PLCB 16 and PCLB 18 may generate a clock pulse as clock signal44 and clock signal 46 which transfers to clock signal 54 and clocksignal 56 as FCE signal 68 disables clock gating via clock gate 32 andclock gate 24.

Memory core circuit 12 and memory core circuit 14 are reset by prechargeclock 54 and precharge clock 56 so that data output 24 and data output26 is a value of zero.

After this phase, enable (ENA) signal 62 ENA signal 64 may switch fromzero to one in a read operation. The most significant bit (MSB) 48 islogical zero indicating that the read is performed on memory core 12.Other signals such as decoded least significant bit (LSB)/addresslatches are not shown in FIG. 1 for simplification but may be present inany embodiment of the present invention. As indicated by MSB 48, a readoperation executes in the address space of the memory core circuit 12.If a logical one was read from the memory core 12 the output signal 24remains a logical one until the memory core 12 is reset. The logical onepropagates to data out (DOUT) output 42.

In a next cycle, ENA signal 62 may remain high and the MSB 48 may switchto one so that memory core circuit 14 performs a read operation.

MSB 48 of logical one is stored in the latch 20 while the latch 22stores MSB 48 of logical zero from the preceding cycle. Memory corecircuit 12 and memory core circuit 14 then clock and reset. Assumingthat logical zero is read the memory core output 26 stays at logicalzero and the memory core 12 is again reset to zero driving a zero tomemory core output 24. The DOUT 42 also switches to logical zero.

In a next cycle, if ENA signal 62 stays high, then another readoperation executes. MSB 48 may remain at logical one so that both latch20 and latch 22 store a logical one. In this cycle only memory core 14is clocked as precharge clock 54 for memory core circuit 12 is gated bythe logical one driven from NAND gate 39 and OR gate 36.

The following table 1 show the possible input combinations and switchingof memory core clock 54 and memory core clock 56. Both memory corecircuit 12 and memory core circuit 14 are clocked in the case of atransition or reset associated with MSB 48. Typically, MSB 48 ofsubsequent read operations does not change every cycle. In the case thatMSB 48 of subsequent read operation does not change every cycle, onlymemory core circuit 12 or memory core circuit 14 is clocked. This anexemplary embodiment and embodiments of the present inventions may beextended to any number of memory cores. For example, the presentinvention may be extended to four memory cores by including two MSB 48to logic circuitry 40.

TABLE 1 Possible input combinations and switching of the memory coreclocks 54, 56 MSB last FCE ENA MSB latch cycle latch Precharge Precharge58, 60 62, 64 20 22 clock 54 56 1 X X X Clocked Clocked 0 1 0 0 ClockedGated 0 1 1 0 Clocked Clocked 0 1 0 1 Clocked Clocked 0 1 1 1 GatedClocked

FIG. 2 depicts a state machine 100 for activating at least one memorycore circuit according to an embodiment of the invention. A read addressof address latches on a global bit line (GBL) selected in a cycle N ofstate S100, is stored when a Read_Enable signal equals to logical one instate S106 as previously selected in a state S102. When the Read_Enablesignal equal logical one, GBL addresses restore in state S110 when in astate S104 for the currently selected cycle N as well as the previouslyselected cycle N-X. The state S102 of the additional latches are notupdated as long as the Read_Enable signal equal logical zero in stateS108.

FIG. 3 depicts a state machine 110 for activating at least one of thememory core circuits according to a further embodiment of the invention.The state machine 110 shown in FIG. 3 resembles the state machine 100shown in FIG. 2 with the exception that optional transition S114 for aPower-On_Reset which delivers a force clock enable (FCE) leads to arestore of global bit lines S112.

FIG. 4 depicts a block diagram of components of server computer 108within distributed data processing environment 100 of FIG. 1, inaccordance with an embodiment of the present invention. It should beappreciated that FIG. 4 provides only an illustration of oneimplementation and does not imply any limitations with regard to theenvironments in which different embodiments can be implemented. Manymodifications to the depicted environment can be made.

Server computer 108 can include processor(s) 404, cache 414, memory 406,persistent storage 408, communications unit 410, input/output (I/O)interface(s) 412 and communications fabric 402. Communications fabric402 provides communications between cache 414, memory 406, persistentstorage 408, communications unit 410, and input/output (I/O)interface(s) 412. Communications fabric 402 can be implemented with anyarchitecture designed for passing data and/or control informationbetween processors (such as microprocessors, communications and networkprocessors, etc.), system memory, peripheral devices, and any otherhardware components within a system. For example, communications fabric402 can be implemented with one or more buses.

Memory 406 and persistent storage 408 are computer readable storagemedia. In this embodiment, memory 406 includes random access memory(RAM). In general, memory 406 can include any suitable volatile ornon-volatile computer readable storage media. Cache 414 is a fast memorythat enhances the performance of processor(s) 404 by holding recentlyaccessed data, and data near recently accessed data, from memory 406.

Program instructions and data used to practice embodiments of thepresent invention, e.g., program module 110 and database 112, are storedin persistent storage 408 for execution and/or access by one or more ofthe respective processor(s) 404 of server computer 108 via cache 414. Inthis embodiment, persistent storage 408 includes a magnetic hard diskdrive. Alternatively, or in addition to a magnetic hard disk drive,persistent storage 408 can include a solid-state hard drive, asemiconductor storage device, a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM), a flash memory, or any othercomputer readable storage media that is capable of storing programinstructions or digital information.

The media used by persistent storage 408 may also be removable. Forexample, a removable hard drive may be used for persistent storage 408.Other examples include optical and magnetic disks, thumb drives, andsmart cards that are inserted into a drive for transfer onto anothercomputer readable storage medium that is also part of persistent storage508.

Communications unit 410, in these examples, provides for communicationswith other data processing systems or devices, including resources ofcomputing device 104. In these examples, communications unit 410includes one or more network interface cards. Communications unit 410may provide communications through the use of either or both physicaland wireless communications links. Program module 110, database 112, andother programs and data used for implementation of the presentinvention, may be downloaded to persistent storage 408 of servercomputer 108 through communications unit 410.

I/O interface(s) 412 allows for input and output of data with otherdevices that may be connected to server computer 108. For example, I/Ointerface(s) 412 may provide a connection to external device(s) 416 suchas a keyboard, a keypad, a touch screen, a microphone, a digital camera,and/or some other suitable input device. External device(s) 416 can alsoinclude portable computer readable storage media such as, for example,thumb drives, portable optical or magnetic disks, and memory cards.Software and data used to practice embodiments of the present invention,e.g., program module 110 and database 112 on server computer 108, can bestored on such portable computer readable storage media and can beloaded onto persistent storage 408 via I/O interface(s) 412. I/Ointerface(s) 412 also connect to a display 418.

Display 418 provides a mechanism to display data to a user and may be,for example, a computer monitor. Display 518 can also function as atouchscreen, such as a display of a tablet computer.

The programs described herein are identified based upon the applicationfor which they are implemented in a specific embodiment of theinvention. However, it should be appreciated that any particular programnomenclature herein is used merely for convenience, and thus theinvention should not be limited to use solely in any specificapplication identified and/or implied by such nomenclature.

What is claimed is:
 1. A method for activating at least one memory corecircuit of a plurality of memory core circuits in an integrated circuit,the method comprising: storing, by one or more computer processors, in astorage element, information regarding whether a specific memory corecircuit was previously selected; activating, by the one or more computerprocessors, a clock signal of a currently selected memory core circuit;activating, by the one or more computer processors, the clock signal ofa previously selected memory core circuit to allow the previouslyselected memory core circuit to be set to a deselected operating mode;combining, by the one or more computer processors, an output bitgenerated by the currently selected memory core circuit with an outputbit generated by the previously selected memory core circuit;forwarding, by the one or more computer processors, the combined outputbit to a multiplexed bit line; and maintaining, by the one or morecomputer processors, an activated state of the clock signal of thespecific memory core circuit based on the information stored in thestorage element indicating that the specific memory core was previouslyactivated.